module.exports = function (grunt) {
	var Public='public/';
	var admin='public/admin/';
	var wap='public/wap/';
	grunt.initConfig({
		pkg:grunt.file.readJSON('package.json'),
		//Less编译css
		less:{
			admin:{
				expand: true,
				cwd:admin+'less/',
				src:['*.less'],
				dest:admin+'css/',
				ext:'.css'
			},wap:{
				expand: true,
				cwd:wap+'less/',
				src: ['*.less'],
				dest:wap+'css/',
				ext:'.css'
			}
		},
		//添加CSS属性私有前缀
		autoprefixer:{
			options:{
				//配置项-兼容的浏览器类型
				browserslist:['last 2 versions','chrome','opera','ff','ie','ie 8','ie 9'],
                map:true,
			},
            //多文件任务
            admin:{
                expand: true,
                flatten: true,//是否取代原先文件名
                src:admin+'css/*.css',//src是源文件
                dest:admin+'css'//dest是目标文件
            },wap:{
                expand: true,
                flatten: true,//是否取代原先文件名
                src:wap+'css/*.css',//src是源文件
                dest:wap+'css'//dest是目标文件
            }
            
		},
		//CSS语法检查
		csslint:{
            options:{
                csslintrc:Public+'.csslint'
            },build:[admin+'css/*.css',wap+'css/*.css'],
        },
		//CSS代码格式化
		csscomb: {
			options: {
				config:Public+'.csscomb.json'
			},admin: {
				expand: true,
				cwd:admin+'css/',
				src:['*.css', '!*.min.css'],
				dest:admin+'css/'
			},wap:{
				expand: true,
				cwd:wap+'css/',
				src:['*.css','!*.min.css'],
				dest:wap+'css/'
			}
		},
		// CSS压缩
		cssmin:{
			options:{
				compatibility:'ie8', //设置兼容模式   
        		noAdvanced:true //取消高级特性   
			},admin:{
				expand: true,
				cwd:admin+'css/',//目录下  
				src:'*.css',//所有css文件  
				dest:admin+'css/',//输出到此目录下  
				//ext:'.min.css'
				ext:'.css'
			},wap:{
				expand: true,
				cwd:wap+'css/',//目录下  
				src:'*.css',//所有css文件  
				dest:wap+'css/',//输出到此目录下  
				//ext:'.min.css'
				ext:'.css'
			}
		},
		//JS语法检查
		jshint:{
			options:{
				globals:{
	                $:false,
	                jQuery:false
	            },
				browser: true,
				devel: true,
				jshintrc:Public+'.jshint'
			},index:[
				//index+'js/**/*.js'
			]
		},
		//合并JS
		concat:{
			options: {  
				separator: ';',  
				stripBanners: true  
			},
			index:{
				src:['a.js','a.js'],
				dest:'index.js',
			}
		},
		//压缩图片大小
		imagemin:{
			options:{
				optimizationLevel: 3 // 定义 PNG 图片优化水平
			},admin:{
				files:[{
					expand: true,
					cwd:admin+'img/',//需要优化图片路径
					src: ['**/*.{png,jpg,jpeg}'], //优化 images 目录下所有 png/jpg/jpeg 图片
					dest:admin+'img/' //优化后的图片保存位置，覆盖旧图片，并且不作提示
				}],
			},wap:{
				files:[{
					expand: true,
					cwd:wap+'img/',//需要优化图片路径
					src: ['**/*.{png,jpg,jpeg}'], //优化 images 目录下所有 png/jpg/jpeg 图片
					dest:wap+'img/' //优化后的图片保存位置，覆盖旧图片，并且不作提示
				}],
			}
		},
		//监听文件改变
		watch:{
			admin:{
				files:[admin+'less/*.less'],
				tasks:['less:admin','autoprefixer:admin','csscomb:admin','cssmin:admin']
			},wap:{
				files:[wap+'less/*.less'],
				tasks:['less:wap','autoprefixer:wap','csscomb:wap','cssmin:wap']
			}
		},
		watch_dev:{
			admin:{
				files:[admin+'less/*.less'],
				tasks:['less:admin','autoprefixer:admin','csscomb:admin']
			},wap:{
				files:[wap+'less/*.less'],
				tasks:['less:wap','autoprefixer:wap','csscomb:wap']
			}
		},
		
	});
	
	//加载Grunt插件任务
	
	grunt.loadNpmTasks('grunt-contrib-less');//Less编译
	grunt.loadNpmTasks('grunt-autoprefixer');//CSS私有前缀添加
	grunt.loadNpmTasks('grunt-contrib-jshint');//检查JavaScript语法
	grunt.loadNpmTasks('grunt-contrib-csslint');//检查Css语法
	grunt.loadNpmTasks('grunt-csscomb');//CSS代码格式化
	grunt.loadNpmTasks('grunt-contrib-concat');//合并文件
	grunt.loadNpmTasks('grunt-contrib-cssmin');//CSS压缩
	grunt.loadNpmTasks('grunt-contrib-imagemin');//图像压缩模块
	grunt.loadNpmTasks('grunt-contrib-watch');//监视文件变动，做出相应动作
	
	//执行任务
	//压缩图片
	grunt.registerTask('minimg:wap', ['imagemin:wap','watch']);
	grunt.registerTask('minimg:admin', ['imagemin:admin','watch']);
	//压缩css
	grunt.registerTask('mincss', ['csslint','cssmin','watch']);
	grunt.registerTask('mincss', ['cssmin','watch']);
	//压缩js
	grunt.registerTask('minjs', ['jshint','watch']);
	//默认执行 编译less 添加私有前缀 css语法检查 js语法检查 检测文件改变并编译css
	//grunt.registerTask('default', ['less','autoprefixer','csslint','csscomb','cssmin','jshint','watch']);
	
	grunt.registerTask('default', ['less','autoprefixer','csslint','csscomb','cssmin','jshint','watch']);
	grunt.registerTask('dev', ['less','autoprefixer','csscomb','jshint','watch_dev']);
	
	

};